package utils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

/**
 * 二维码生成工具类
 * 简化版，不依赖第三方库
 */
public class QRCodeUtil {
    
    /**
     * 生成分享链接
     * @param goodsId 商品ID
     * @param baseUrl 基础URL，例如 "http://localhost:8080"
     * @return 完整的分享链接
     */
    public static String generateShareLink(int goodsId, String baseUrl) {
        return baseUrl + "/goods_detail?id=" + goodsId + "&source=share";
    }
    
    /**
     * 获取分享到微信的脚本链接
     * @param shareLink 分享链接
     * @param title 分享标题
     * @param desc 分享描述
     * @param imgUrl 分享图片URL
     * @return 分享脚本
     */
    public static String getWechatShareScript(String shareLink, String title, String desc, String imgUrl) {
        StringBuilder sb = new StringBuilder();
        sb.append("javascript:void(function(){")
          .append("var m = encodeURIComponent('").append(shareLink).append("'),")
          .append("t = encodeURIComponent('").append(title).append("'),")
          .append("d = encodeURIComponent('").append(desc).append("'),")
          .append("i = encodeURIComponent('").append(imgUrl).append("');")
          .append("document.location = 'https://api.qrserver.com/v1/create-qr-code/?data=' + m;")
          .append("})()");
        
        return sb.toString();
    }
    
    /**
     * 获取分享到微博的链接
     * @param shareLink 分享链接
     * @param title 分享标题
     * @return 微博分享链接
     */
    public static String getWeiboShareLink(String shareLink, String title) {
        return "http://service.weibo.com/share/share.php?url=" + 
               encode(shareLink) + 
               "&title=" + 
               encode(title);
    }
    
    /**
     * 获取分享到QQ空间的链接
     * @param shareLink 分享链接
     * @param title 分享标题
     * @param desc 分享描述
     * @param imgUrl 分享图片URL
     * @return QQ空间分享链接
     */
    public static String getQQShareLink(String shareLink, String title, String desc, String imgUrl) {
        return "http://connect.qq.com/widget/shareqq/index.html?url=" + 
               encode(shareLink) + 
               "&title=" + 
               encode(title) + 
               "&desc=" + 
               encode(desc) + 
               "&pics=" + 
               encode(imgUrl);
    }
    
    /**
     * URL编码
     * @param str 原字符串
     * @return 编码后的字符串
     */
    private static String encode(String str) {
        try {
            return java.net.URLEncoder.encode(str, "UTF-8");
        } catch (Exception e) {
            return str;
        }
    }
    
    /**
     * 生成二维码URL（使用外部服务）
     * @param content 二维码内容
     * @param size 二维码尺寸
     * @return 二维码图片URL
     */
    public static String getQRCodeImageUrl(String content, int size) {
        return "https://api.qrserver.com/v1/create-qr-code/?size=" + 
               size + "x" + size + 
               "&data=" + 
               encode(content);
    }
} 